// 引入axios
import axios from 'axios';
import {ElMessage} from "element-plus";

const domain = "http://127.0.0.1/zhongya/api/portal"
// 创建axios实例
const service = axios.create({
    baseURL: domain, // api的base_url
    timeout: 10000, // 请求超时时间
    withCredentials: true, // 是否允许携带cookie跨域
});

// 请求拦截器
service.interceptors.request.use(
    config => {
        config.headers['timeStamp'] = new Date().getTime();
        // 在发送请求之前做些什么，例如添加Token
        if (localStorage.getItem('token')) {
            config.headers['token'] = localStorage.getItem('token');
        }
        return config;
    },
    error => {
        // 对请求错误做些什么
        console.log(error);
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        const res = response.data;
        if (!res.success) {
            if (res.code === 10001){ // 未登录
                //应该跳转到登录页面或者其他逻辑
                ElMessage.error(res.message)
            }else{
                ElMessage.error(res.message)
            }
        }
        return res;
    },
    error => {
        // 对响应错误做点什么
        console.log('err' + error);
        // 可能根据错误码进行不同的错误处理
        return Promise.reject(error);
    }
);

const request = (option) => {
    return new Promise((resolve,reject) => {
        service({
            url: option.url,
            data: option.data || {},
            method: option.method || 'GET'
        }).then(res=>{
            console.log(res)
            if (res.success) {
                resolve(res)
            }
        }).catch(err=>{
            reject(err)
        })
    })
}

export default request;
